package com.yeban.javase.day07.test04_reg;

import java.util.Arrays;

/**
 * @Desc TODO
 * @Author yeban
 * @Date 2025/10/15
 *
 * .请使用代码描述：有一段文本 "  anglebaby          女          18          515151511  "
 * 分别描述一个人的姓名 性别 年龄(int) 和QQ号码信息,完成如下需求:
 * 1）、创建一个Person类,包含性别,性别,年龄和QQ号码属性,使用解析出来信息创建一个Person对象,
 * 并打印这个人信息
 * 2）、并判断QQ号是否合法,匹配规则,全部都是数字,第一位非0,长度为5到12位
 */
public class Test03 {

    public static void main(String[] args) {

        String str = "  anglebaby          女          18          515151511  ";
        // 解析空格
        String[] strs = str.trim().split("[ ]+");
        Person p = new Person();

        Arrays.toString(strs);
        for(String s : strs) {
            if(s.matches("[a-zA-Z]{5,}")) {                 // 判断昵称
                p.setName(s);
            } else if (s.matches("[男女]")) {          // 判断性别
                p.setGender(s);
            } else if (s.matches("[1-9]\\d{4,11}")) {     // 判断qq
                p.setQq(Long.valueOf(s));
            } else if (s.matches("\\d{2}")) {         // 判断年龄
                p.setAge(Integer.valueOf(s));
            }
        }

        System.out.println(p);
    }
}

class Person {
    private String name;
    private String gender;
    private int age;
    private long qq;

    public Person() {
    }

    public Person(String name, String gender, int age, long qq) {
        this.name = name;
        this.gender = gender;
        this.age = age;
        this.qq = qq;
    }

    /**
     * 获取
     * @return name
     */
    public String getName() {
        return name;
    }

    /**
     * 设置
     * @param name
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取
     * @return gender
     */
    public String getGender() {
        return gender;
    }

    /**
     * 设置
     * @param gender
     */
    public void setGender(String gender) {
        this.gender = gender;
    }

    /**
     * 获取
     * @return age
     */
    public int getAge() {
        return age;
    }

    /**
     * 设置
     * @param age
     */
    public void setAge(int age) {
        this.age = age;
    }

    /**
     * 获取
     * @return qq
     */
    public long getQq() {
        return qq;
    }

    /**
     * 设置
     * @param qq
     */
    public void setQq(long qq) {
        this.qq = qq;
    }

    public String toString() {
        return "Person{name = " + name + ", gender = " + gender + ", age = " + age + ", qq = " + qq + "}";
    }
}
